GtkCheckMenuItem: Remove snapshot-indicator vfunc
authorTimm Bäder <mail@baedert.org>
Sun, 16 Jul 2017 15:18:17 +0000 (17:18 +0200)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 20 Jul 2017 01:27:16 +0000 (21:27 -0400)
Let the widget snapshot all child widgets and control the visibility of
those child widgets instead.

gtk/gtkcheckmenuitem.c
gtk/gtkcheckmenuitem.h
gtk/gtkmodelmenuitem.c

index b8d57cda48d0e5f0b8ab75101ca16d9c23574fe2..ac80ce3b58453a4877da414b8ab911c8c78ccd56 100644 (file)
@@ -81,13 +81,9 @@ enum {
   PROP_DRAW_AS_RADIO
 };
 
-static void gtk_check_menu_item_snapshot             (GtkWidget             *widget,
-                                                      GtkSnapshot           *snapshot);
 static void gtk_check_menu_item_activate             (GtkMenuItem           *menu_item);
 static void gtk_check_menu_item_toggle_size_request  (GtkMenuItem           *menu_item,
                                                       gint                  *requisition);
-static void gtk_real_check_menu_item_snapshot_indicator (GtkCheckMenuItem   *check_menu_item,
-                                                      GtkSnapshot           *snapshot);
 static void gtk_check_menu_item_set_property         (GObject               *object,
                                                       guint                  prop_id,
                                                       const GValue          *value,
@@ -204,14 +200,11 @@ gtk_check_menu_item_class_init (GtkCheckMenuItemClass *klass)
                                                          FALSE,
                                                          GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
 
-  widget_class->snapshot = gtk_check_menu_item_snapshot;
-
   menu_item_class->activate = gtk_check_menu_item_activate;
   menu_item_class->hide_on_activate = FALSE;
   menu_item_class->toggle_size_request = gtk_check_menu_item_toggle_size_request;
   
   klass->toggled = NULL;
-  klass->snapshot_indicator = gtk_real_check_menu_item_snapshot_indicator;
 
   /**
    * GtkCheckMenuItem::toggled:
@@ -490,23 +483,6 @@ gtk_check_menu_item_init (GtkCheckMenuItem *check_menu_item)
   update_node_state (check_menu_item);
 }
 
-static void
-gtk_check_menu_item_snapshot (GtkWidget   *widget,
-                              GtkSnapshot *snapshot)
-{
-  GtkCheckMenuItem *check_menu_item = GTK_CHECK_MENU_ITEM (widget);
-  GtkWidget *child;
-
-  child = gtk_bin_get_child (GTK_BIN (widget));
-
-
-  if (child)
-    gtk_widget_snapshot_child (widget, child, snapshot);
-
-  if (GTK_CHECK_MENU_ITEM_GET_CLASS (check_menu_item)->snapshot_indicator)
-    GTK_CHECK_MENU_ITEM_GET_CLASS (check_menu_item)->snapshot_indicator (check_menu_item, snapshot);
-}
-
 static void
 gtk_check_menu_item_activate (GtkMenuItem *menu_item)
 {
@@ -573,15 +549,6 @@ gtk_check_menu_item_direction_changed (GtkWidget        *widget,
   GTK_WIDGET_CLASS (gtk_check_menu_item_parent_class)->direction_changed (widget, previous_dir);
 }
 
-static void
-gtk_real_check_menu_item_snapshot_indicator (GtkCheckMenuItem *check_menu_item,
-                                             GtkSnapshot      *snapshot)
-{
-  gtk_widget_snapshot_child (GTK_WIDGET (check_menu_item),
-                             check_menu_item->priv->indicator_widget,
-                             snapshot);
-}
-
 static void
 gtk_check_menu_item_get_property (GObject     *object,
                                   guint        prop_id,
index e31973ce761283860d4ca11e2c0839daac358d23..317639b28115c8ff81f2e6898aa1fed63ed623a9 100644 (file)
@@ -59,7 +59,6 @@ struct _GtkCheckMenuItem
  * GtkCheckMenuItemClass:
  * @parent_class: The parent class.
  * @toggled: Signal emitted when the state of the check box is changed.
- * @snapshot_indicator: Called to draw the check indicator.
  */
 struct _GtkCheckMenuItemClass
 {
@@ -68,8 +67,6 @@ struct _GtkCheckMenuItemClass
   /*< public >*/
 
   void (* toggled)             (GtkCheckMenuItem *check_menu_item);
-  void (* snapshot_indicator)   (GtkCheckMenuItem *check_menu_item,
-                                GtkSnapshot      *snapshot);
 
   /*< private >*/
 
index 1d4a5d40dc1d98734d7b8f0e4a50ed929fbd7685..8d0e0a655400ba53f4223f287f1a5cd1fb98518a 100644 (file)
@@ -67,17 +67,6 @@ gtk_model_menu_item_activate (GtkMenuItem *item)
   /* block the automatic toggle behaviour -- just do nothing */
 }
 
-static void
-gtk_model_menu_item_snapshot_indicator (GtkCheckMenuItem *check_item,
-                                        GtkSnapshot      *snapshot)
-{
-  GtkModelMenuItem *item = GTK_MODEL_MENU_ITEM (check_item);
-
-  if (item->has_indicator)
-    GTK_CHECK_MENU_ITEM_CLASS (gtk_model_menu_item_parent_class)
-      ->snapshot_indicator (check_item, snapshot);
-}
-
 static void
 gtk_model_menu_item_set_has_indicator (GtkModelMenuItem *item,
                                        gboolean          has_indicator)
@@ -468,17 +457,16 @@ gtk_model_menu_item_set_property (GObject      *object,
 static void
 gtk_model_menu_item_init (GtkModelMenuItem *item)
 {
+  item->has_indicator = FALSE;
+  gtk_widget_hide (_gtk_check_menu_item_get_indicator_widget (GTK_CHECK_MENU_ITEM (item)));
 }
 
 static void
 gtk_model_menu_item_class_init (GtkModelMenuItemClass *class)
 {
-  GtkCheckMenuItemClass *check_class = GTK_CHECK_MENU_ITEM_CLASS (class);
   GtkMenuItemClass *item_class = GTK_MENU_ITEM_CLASS (class);
   GObjectClass *object_class = G_OBJECT_CLASS (class);
 
-  check_class->snapshot_indicator = gtk_model_menu_item_snapshot_indicator;
-
   item_class->toggle_size_request = gtk_model_menu_item_toggle_size_request;
   item_class->activate = gtk_model_menu_item_activate;